﻿using System.Collections;
using System.Collections.Generic;
using UnityEngine;

/// <summary>
/// 消息处理中心 
///   只负责消息的转发 
///   UI -->MsgCenter --> character   
/// </summary>
public class MsgCenter : MonoBase
{

    public static MsgCenter Instance = null;

    private void Awake()
    {
        Instance = this;
        gameObject.AddComponent<AudioManager>();
        gameObject.AddComponent<UIManager>();
        gameObject.AddComponent<CharacterManager>();

    }

    /// <summary>
    /// 发送消息，系统里面所有需要发的消息，都通过这个方法来发
    ///   第一个参数 识别是识别那个模块（角色），但是每个(角色)模块有很多功能，比如：移动，攻击，死亡....
    ///   第二个参数 识别具体需要做什么事件
    ///   第三个参数 识别所做事件传递的参数
    /// </summary>
    /// <param name="areaCode">各个模块的功能</param>
    /// <param name="eventCode">具体需要做什么</param> 
    /// <param name="message">事件的参数（可有可无）</param>
    public void Dispatch(int areaCode, int eventCode, object message)
    {
        switch (areaCode)
        {
            case AreaCode.UI:
                UIManager.Instance.Excute(eventCode, message);
                break;
            case AreaCode.GAME:

                break;
            case AreaCode.CHARACTER:
                CharacterManager.Instance.Excute(eventCode, message);
                break;
            case AreaCode.NET:

                break;
            case AreaCode.AUDIO:
                AudioManager.Instance.Excute(eventCode, message);
                break;
            default:
                break;
        }

    }

}
